Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Visual Basic</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Visual_Basic"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Visual_Basic rootpage-Visual_Basic skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Visual Basic</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">
<p class="mw-empty-elt">
</p>
<table class="infobox_v2 infobox infobox--frwiki noarchive">
<tbody><tr>
<td colspan="2" class="entete informatique" style="background-color:#659bd3;color:black;">Visual Basic<style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */


.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}


/* end https://fr.wikipedia.org/ */
</style>
</td></tr>



<tr><th scope="row">Date de première version
</th>
<td>1991
</td>
</tr>
<tr>
<th scope="row"><a href="Paradigme_(programmation)" title="Paradigme (programmation)">Paradigme</a>
</th>
<td><a href="Programmation_%C3%A9v%C3%A9nementielle" title="Programmation événementielle">Programmation événementielle</a>
</td>
</tr>
<tr>



<th scope="row">Développeur
</th>
<td><a href="Microsoft" title="Microsoft">Microsoft</a>
</td>
</tr>
<tr>

<th scope="row"><a href="Version_d'un_logiciel" title="Version d'un logiciel">Dernière version</a>
</th>
<td>6.0 (1998)
</td>
</tr>
<tr>

<th scope="row">Typage
</th>
<td><a href="Typage_statique" title="Typage statique">Statique</a>, <a href="Typage_fort" title="Typage fort">fort</a>
</td>
</tr>
<tr>


<th scope="row">Influencé par
</th>
<td><a href="Quick_BASIC" class="mw-redirect" title="Quick BASIC">Quick Basic</a>
</td>
</tr>
<tr>
<th scope="row">A influencé
</th>
<td><a href="Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic .NET</a>, <a href="Gambas_(langage)" title="Gambas (langage)">Gambas</a>
</td>
</tr>
<tr>


<th scope="row"><a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">Système d'exploitation</a>
</th>
<td><a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>
</td>
</tr>
<tr>

<th scope="row"><a href="Licence_de_logiciel" title="Licence de logiciel">Licence</a>
</th>
<td>Propriétaire
</td>
</tr>
<tr>
<th scope="row"><a href="Site_web" title="Site web">Site web</a>
</th>
<td><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6.0-documentation">microsoft.com</a>
</td>
</tr>
<tr>


</tr>
</tbody></table>
<p><b>Visual Basic (VB)</b> est un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> <a href="Programmation_%C3%A9v%C3%A9nementielle" title="Programmation événementielle">événementielle</a> de troisième génération ainsi qu'un <a href="Environnement_de_D%C3%A9veloppement_Int%C3%A9gr%C3%A9" class="mw-redirect" title="Environnement de Développement Intégré">environnement de développement intégré</a>, créé par <a href="Microsoft" title="Microsoft">Microsoft</a> pour son modèle de programmation <a href="Component_Object_Model" title="Component Object Model">COM</a><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>. Visual Basic est directement dérivé du <a href="BASIC" class="mw-redirect" title="BASIC">BASIC</a> et permet le <a href="D%C3%A9veloppement_rapide_d'applications" title="Développement rapide d'applications">développement rapide d'applications</a>, la création d'<a href="Interface_graphique" title="Interface graphique">interfaces utilisateur graphiques</a>, l'accès aux <a href="Base_de_donn%C3%A9es" title="Base de données">bases de données</a> en utilisant les technologies <a href="Data_Access_Object" class="mw-redirect" title="Data Access Object">DAO</a>, <a href="ActiveX_Data_Objects" title="ActiveX Data Objects">ADO</a> et RDO, ainsi que la création de contrôles ou objets <a href="ActiveX" title="ActiveX">ActiveX</a>. Les langages de script tels que <span class="lang-en" lang="en"><i><a href="Visual_Basic_for_Applications" title="Visual Basic for Applications">Visual Basic for Applications</a></i></span> et <a href="VBScript" title="VBScript">VBScript</a> sont syntaxiquement proches de Visual Basic, mais s'utilisent et se comportent de façon sensiblement différente<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p><p>Un programme en VB peut être développé en utilisant les composants fournis avec Visual Basic lui-même. Les programmes écrits en Visual Basic peuvent aussi utiliser l'<a href="Windows_API" title="Windows API">API Windows</a>, ceci nécessitant la déclaration dans le programme des fonctions externes.
</p><p>Dans une étude conduite en 2005, 62&nbsp;% des développeurs déclaraient utiliser l'une ou l'autre forme de Visual Basic. Selon la même étude, les langages les plus utilisés dans le domaine commercial étaient Visual Basic, <a href="C%2B%2B" title="C++">C++</a>, <a href="C_sharp" class="mw-redirect" title="C sharp">C#</a> et <a href="Java_(langage)" title="Java (langage)">Java</a><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>.
</p><p>La dernière mise à jour de Visual Basic est la version 6.0, sortie en <a href="1998_en_informatique" title="1998 en informatique">1998</a>. Le support étendu Microsoft a pris fin en <a href="2008_en_informatique" title="2008 en informatique">2008</a>. À partir de la version 7, le Visual Basic subit des changements substantiels le rapprochant de la plate-forme «&nbsp;<span class="lang-en" lang="en">dot Net</span>&nbsp;», et qui amènent Microsoft à le commercialiser sous le nom de <a href="Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic .NET</a>.
</p>

<div class="mw-heading mw-heading2"><h2 id="Fonctionnalités_du_langage"><span id="Fonctionnalit.C3.A9s_du_langage"></span>Fonctionnalités du langage</h2></div>
<p>Visual Basic a été conçu pour être facile à apprendre et à utiliser. Le langage permet de créer des <a href="Interface_homme-machine" class="mw-redirect" title="Interface homme-machine">applications graphiques</a> de façon simple, mais également de créer des applications véritablement complexes. Programmer en VB est un mélange de plusieurs tâches, comme disposer visuellement les composants et contrôles sur les formulaires, définir les propriétés et les actions associées à ces composants, et enfin ajouter du <a href="Code_source" title="Code source">code</a> pour ajouter des fonctionnalités. Comme les attributs et les actions reçoivent des valeurs par défaut, il est possible de créer un programme simple sans que le programmeur ait à écrire de nombreuses lignes de code. Les premières versions ont souffert de problèmes de performance, mais avec l'apparition d'ordinateurs plus rapides et grâce à la compilation en <a href="Code_natif" title="Code natif">code natif</a>, ce problème de performance s'est estompé.
</p><p>Bien que les programmes puissent être compilés en code natif depuis la version 5, ils requièrent toujours pour fonctionner la présence du <a href="Moteur_d'ex%C3%A9cution" class="mw-redirect" title="Moteur d'exécution">moteur d'exécution</a> ou <span class="lang-en" lang="en"><i>runtime</i></span>, pour une taille d’environ 2&nbsp;<abbr class="abbr" title="mégabyte">MB</abbr>. Ce moteur d'exécution est inclus par défaut dans <a href="Windows_2000" title="Windows 2000">Windows 2000</a> et versions ultérieures sous forme de bibliothèques dynamiques. Pour les versions précédentes de <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a>, le moteur d'exécution doit être distribué avec l’exécutable lui-même.
</p><p>Dans l'<a href="Environnement_de_d%C3%A9veloppement_int%C3%A9gr%C3%A9" class="mw-redirect" title="Environnement de développement intégré">IDE</a>, les formulaires sont créés en utilisant la technique de <a href="Glisser-d%C3%A9poser" title="Glisser-déposer">glisser-déposer</a>, permettant de disposer des contrôles (boîte de saisie, <a href="Case_%C3%A0_cocher" title="Case à cocher">case à cocher</a>, bouton, etc.) sur le formulaire. Les contrôles possèdent tous des attributs et des gestionnaires d’événements associés. Des valeurs par défaut sont attribuées, qui peuvent être modifiées par le programmeur. De nombreux attributs peuvent être modifiés dynamiquement lors de l’exécution, en réponse à des actions de l’utilisateur ou à des changements dans l’environnement. Par exemple, il est possible d’ajouter du code dans le gestionnaire de l’événement redimensionnement du formulaire, afin de maintenir celui-ci en permanence au centre de l’écran ou encore d’agrandir le formulaire afin qu’il occupe toute la surface de l’écran. En ajoutant du code dans le gestionnaire de l’événement «&nbsp;<span class="lang-en" lang="en"><i>KeyPress</i></span>&nbsp;» (touche enfoncée) d'une boîte de saisie, le programme pourrait automatiquement convertir les minuscules en majuscules ou inversement, ou encore interdire l'insertion de certains caractères.
</p><p>Visual Basic permet de créer des exécutables (fichiers .EXE), des contrôles <a href="ActiveX" title="ActiveX">ActiveX</a> ou des <a href="Biblioth%C3%A8que_logicielle" title="Bibliothèque logicielle">DLL</a>, mais son usage premier est la réalisation d’applications Windows et l’interfaçage Web avec des bases de données. On peut utiliser des boîtes de dialogue simplifiées (par exemple pas de <span class="lang-en" lang="en"><i>Maximize/Minimize</i></span>) pour fournir des fonctionnalités de type pop-up. Les contrôles fournissent les fonctionnalités de base de l’application, les programmeurs ajoutant simplement le fonctionnel supplémentaire en insérant du code dans les gestionnaires d’événements appropriés. Par exemple, une boîte de sélection déroulante est directement capable d’afficher sa liste et de permettre à l’utilisateur de choisir l’un de ses éléments. Un gestionnaire d’événement est appelé lorsqu’un élément est sélectionné, par exemple pour remplir une liste associée.
</p><p>Un composant Visual Basic peut aussi ne pas avoir d’interface utilisateur et fournir à la place des objets ActiveX aux autres programmes, au travers du <span class="lang-en" lang="en"><i>Component Object Model</i></span> (COM).
Le langage dispose d'un mécanisme de récupération de mémoire (<a href="Ramasse-miettes_(informatique)" title="Ramasse-miettes (informatique)">Ramasse-miettes</a>), utilisant le mécanisme de «&nbsp;comptage de référence&nbsp;». Il dispose également d’une grande bibliothèque d’utilitaires et offre les bases du support de la <a href="Orient%C3%A9_objet" class="mw-redirect" title="Orienté objet">Programmation Orientée Objet</a>. Dans la mesure où les composants les plus communs sont inclus par défaut dans le modèle de projet standard, il est rarement nécessaire pour le programmeur d’utiliser des bibliothèques additionnelles. À la différence de beaucoup d’autres langages de programmation, Visual Basic n’est en général pas sensible à la casse (l’usage des majuscules ou des minuscules est indifférent), bien qu’il transforme automatiquement l’écriture des mots-clés selon une convention standard et qu’il force l’écriture des variables dans le code à être identique à l’écriture employée lors de la déclaration. En revanche, les comparaisons de <a href="Cha%C3%AEne_de_caract%C3%A8res" title="Chaîne de caractères">chaînes de caractères</a> sont elles sensibles à la casse par défaut, mais ce comportement est modifiable à volonté.
</p>
<div class="mw-heading mw-heading2"><h2 id="Caractéristiques_de_Visual_Basic"><span id="Caract.C3.A9ristiques_de_Visual_Basic"></span>Caractéristiques de Visual Basic</h2></div>
<p>Visual Basic possède quelques caractéristiques inhabituelles&nbsp;:
</p>
<ul><li>Rétrocompatibilité avec les <i>(anciennes)</i> versions du BASIC de Microsoft <i>(<a href="QBasic" title="QBasic">QBasic</a>/<a href="QuickBasic" title="QuickBasic">QuickBasic</a>)</i> permettant le portage de vieux programmes.</li>
<li>Possibilité d'utiliser à la fois des méthodes procédurales à l'ancienne <i>(via des branchement avec des labels. Ex.: &lt;label&gt;: GOTO &lt;label&gt;&nbsp;; et des sous-procédures du type GOSUB &lt;label&gt; ... RETURN)</i>, et à la fois des techniques plus modernes comme la programmation orientée objet <i>(avec des modules de classe...)</i>.</li>
<li>Optionnalité d'un grand nombre de déclarations (typage, référencement, portées...) ainsi qu'une syntaxe souple (espaces facultatifs).</li>
<li>La constante <a href="Bool%C3%A9en" title="Booléen">booléenne</a> <tt>True</tt> a la valeur numérique -1<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>. Ceci est dû au fait que le type booléen est codé comme un entier de 16 bits signé. Dans cette représentation, -1 est codé comme une suite de 16 «&nbsp;1 binaires&nbsp;» (la valeur booléenne <tt>True</tt>), et que 0 est codé comme 16 «&nbsp;0 binaires&nbsp;» (la valeur booléenne <tt>False</tt>)&nbsp;; lorsqu'on effectue l’opération <tt>Non Logique</tt> sur un entier signé de 16 bits valant 0, on obtient -1. En d’autres termes, <tt>True</tt> = <tt>Not</tt> <tt>False</tt>. Cette caractéristique intrinsèque devient particulièrement utile lorsque l’on effectue des opérations logiques bit à bit sur un entier, telles qu’<tt>And</tt>, <tt>Or</tt>, <tt>Xor</tt> et <tt>Not</tt>. Cette définition est également globalement cohérente avec les implémentations de BASIC depuis Microsoft Basic, au début des <a href="Ann%C3%A9es_1970" title="Années 1970">années 1970</a>. C’est également en adéquation avec les caractéristiques des microprocesseurs de cette période.</li>
<li>Les opérateurs bit à bit et les opérateurs logiques sont les mêmes. Ce n’est en revanche pas le cas dans tous les langages dérivés de C (tels que <a href="Java_(langage)" title="Java (langage)">Java</a> et <a href="Perl_(langage)" title="Perl (langage)">Perl</a>) qui disposent d’opérateurs différenciés pour les opérations logiques et les opérations bit à bit. Ceci est également une caractéristique traditionnelle du langage BASIC.</li>
<li>Base de <a href="Tableau_(structure_de_donn%C3%A9es)" title="Tableau (structure de données)">tableaux</a> variable. Les tableaux sont déclarés en spécifiant les bornes inférieures et supérieures, de la même façon qu’en <a href="Pascal_(langage)" title="Pascal (langage)">Pascal</a> ou qu’en <a href="Fortran" title="Fortran">Fortran</a>. Il est également possible d’utiliser l’instruction «&nbsp;Option Base&nbsp;» pour spécifier l’indice de borne inférieure par défaut. L’usage de cette instruction peut prêter à confusion lors de la lecture de code Visual Basic et il est préférable d’éviter son utilisation&nbsp;; on lui préférera la déclaration explicite de la borne inférieure du tableau. Cette borne inférieure n’est pas limitée aux seules valeurs zéro ou un, elle peut aussi être spécifiée explicitement lors de la déclaration de la variable. Ainsi, les bornes inférieures et supérieures sont toutes deux programmables. Dans d’autres langages, la borne inférieure des tableaux n’est pas programmable. Cette caractéristique n’existe pas dans <a href="Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic .NET</a> ni dans <a href="VBScript" title="VBScript">VBScript</a>. L’instruction <tt>Option Base</tt> a été introduite dans la norme ANSI, avec la norme ANSI pour BASIC minimal, à la fin des <a href="Ann%C3%A9es_1970" title="Années 1970">années 1970</a>. L’extension permettant d’utiliser la forme de DIM A(1976 TO 2002) a été introduite pour la première fois dans le BBC Basic, disponible dans le <a href="BBC_Micro" title="BBC Micro">BBC micro</a>, lui-même influencé par COMAL&nbsp;<a href="https://en.wikipedia.org/wiki/COMAL" class="extiw external" title="en:COMAL"><span class="indicateur-langue" title="Article en anglais&nbsp;: «&nbsp;COMAL&nbsp;»">(en)</span></a>.</li>
<li>Forte intégration avec le <a href="Microsoft_Windows" title="Microsoft Windows">système d’exploitation Windows</a> ainsi qu’avec le modèle <a href="Component_Object_Model" title="Component Object Model">COM</a>.</li>
<li>L’<a href="Arrondi_(math%C3%A9matiques)" title="Arrondi (mathématiques)">arrondi bancaire</a> est utilisé par défaut lors de la conversion de nombres réels en entiers.</li>
<li>Les nombres entiers sont automatiquement convertis en nombres réels dans les expressions où apparaît l’opérateur de division normale (/) afin que la division d’un entier impair par un entier pair produise le résultat intuitivement espéré. Il existe un opérateur spécifique pour la division entière (\) qui lui tronque le résultat.</li>
<li>Par défaut, si une variable n’est pas déclarée du tout ou si elle est déclarée sans spécification explicite de type, elle prend le type «&nbsp;<a href="Variant" title="Variant">Variant</a>&nbsp;». Cependant, ce comportement peut être modifié par l’utilisation d’instructions <tt>DefType</tt> telles que <tt>DefInt</tt>, <tt>DefBool</tt>, <tt>DefObj</tt>, <tt>DefStr</tt>, etc. Il existe 12 instructions <tt>DefType</tt> dans Visual Basic 6.0. Un type par défaut peut être remplacé dans une déclaration spécifique en utilisant un suffixe spécial accolé au nom de la variable (<tt>#</tt> pour <span class="lang-en" lang="en"><i>Double</i></span>, <tt>!</tt> pour <span class="lang-en" lang="en"><i>Single</i></span>, <tt>&amp;</tt> pour Long, <tt>%</tt> pour <span class="lang-en" lang="en"><i>Integer</i></span>, <tt>$</tt> pour <span class="lang-en" lang="en"><i>String</i></span> and <tt>@</tt> pour <span class="lang-en" lang="en"><i>Currency</i></span>). Il est aussi possible d’utiliser la forme <tt>As (type)</tt>. Il est également possible de configurer VB afin qu’il exige la déclaration explicite de toutes les variables, en utilisant la commande <tt>Option Explicit</tt>.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Évolution_de_Visual_Basic"><span id=".C3.89volution_de_Visual_Basic"></span>Évolution de Visual Basic</h2></div>
<p>VB 1.0 a vu le jour en <a href="1991_en_informatique" title="1991 en informatique">1991</a>. Le principe de connexion d’un langage de programmation avec une interface utilisateur graphique est dérivé d’un prototype appelé Tripod, développé par <a href="Alan_Cooper" title="Alan Cooper">Alan Cooper</a>. Microsoft avait alors contacté Cooper et ses associés pour développer un <span class="lang-en" lang="en"><i>Shell</i></span> programmable pour <a href="Windows_3.0" title="Windows 3.0">Windows 3.0</a>, sous le nom de code Ruby (aucun lien avec le langage de programmation <a href="Ruby" title="Ruby">Ruby</a>).
</p><p>Tripod ne contenait aucun langage de programmation et Ruby contenait uniquement un processeur de commandes rudimentaire suffisant pour tenir le rôle d’un <span class="lang-en" lang="en"><i>Shell</i></span> Windows. Finalement, Microsoft décida d’utiliser le simple <span class="lang-en" lang="en"><i>Program Manager</i></span> comme <span class="lang-en" lang="en"><i>Shell</i></span> pour <a href="Windows_3.0" title="Windows 3.0">Windows 3.0</a>, à la place de Ruby, et de combiner Ruby avec le langage <a href="BASIC" class="mw-redirect" title="BASIC">Basic</a> pour créer Visual Basic.
</p><p>Ruby a fourni la partie «&nbsp;Visual&nbsp;» de Visual Basic – l’éditeur de fenêtres et les outils d’édition – associé avec la possibilité de charger des bibliothèques dynamiques, contenant des contrôles additionnels (qui s’appelaient alors des «&nbsp;gizmos&nbsp;»). Les extensions «&nbsp;gizmos&nbsp;» de Ruby devinrent par la suite l’interface VBX.
</p>
<div class="mw-heading mw-heading3"><h3 id="Visual_Basic,_de_VB1_à_VB6"><span id="Visual_Basic.2C_de_VB1_.C3.A0_VB6"></span>Visual Basic, de VB1 à VB6</h3></div>
<ul><li>Le projet <span class="lang-en" lang="en"><i>‘Thunder’</i></span> est lancé.</li>
<li>Visual <a href="BASIC_1.0" title="BASIC 1.0">Basic 1.0</a> (<time class="nowrap date-lien" datetime="1991-05" data-sort-value="1991-05"><a href="Mai_1991" title="Mai 1991">mai</a> <a href="1991_en_informatique" title="1991 en informatique">1991</a></time>) pour Windows est présenté au Comdex/Windows à Atlanta, Géorgie.</li>
<li>Visual Basic 1.0 pour <a href="PC-DOS" class="mw-redirect" title="PC-DOS">DOS</a> est présenté en <time class="nowrap date-lien" datetime="1992-09" data-sort-value="1992-09"><a href="Septembre_1992" title="Septembre 1992">septembre</a> <a href="1992_en_informatique" title="1992 en informatique">1992</a></time>. Le langage n’était pas totalement compatible avec Visual Basic pour Windows, car il était en fait la nouvelle version des compilateurs Microsoft BASIC pour DOS, <a href="Quick_BASIC" class="mw-redirect" title="Quick BASIC">Quick Basic</a> et <span class="lang-en" lang="en"><i>BASIC Professional Development System</i></span>. L’interface était en mode texte et utilisait le jeu de caractères <a href="American_Standard_Code_for_Information_Interchange" title="American Standard Code for Information Interchange">ASCII étendu</a> pour simuler une interface graphique.</li>
<li>Visual Basic 2.0 est présenté en <time class="nowrap date-lien" datetime="1992-11" data-sort-value="1992-11"><a href="Novembre_1992" title="Novembre 1992">novembre</a> <a href="1992_en_informatique" title="1992 en informatique">1992</a></time>. L’environnement de développement était plus facile à utiliser et la vitesse avait été améliorée. Un fait marquant était que les formulaires étaient devenus des objets instanciables, posant ainsi le concept de base de modules de classe, qui devinrent plus tard disponibles dans VB4.</li>
<li>Visual Basic 3.0 fut présenté pendant l’été <a href="1993_en_informatique" title="1993 en informatique">1993</a>, disponibles en édition Standard ou Professionnelle. VB3 intégrait la version 1.1 du <a href="Moteur_de_base_de_donn%C3%A9es" title="Moteur de base de données">moteur de base de données</a> <a href="Microsoft_Jet" title="Microsoft Jet">Microsoft Jet</a>, qui pouvait lire et écrire les bases de données Jet (ou Access) 1.x.</li>
<li>Visual Basic 4 (<time class="nowrap date-lien" datetime="1995-08" data-sort-value="1995-08"><a href="Ao%C3%BBt_1995" title="Août 1995">août</a> <a href="1995_en_informatique" title="1995 en informatique">1995</a></time>) a été la première version qui pouvait générer des programmes Windows 16 et/ou 32&nbsp;bits. Cette version introduisait également la possibilité d’écrire des classes sans interface utilisateur. Des incompatibilités entre les différentes versions de VB4 causèrent des problèmes d’installation et de fonctionnement.</li>
<li>La version 5.0 de Visual Basic, sortie en <a href="1997_en_informatique" title="1997 en informatique">1997</a> ne fonctionnait plus qu’avec les versions 32&nbsp;bits de Windows. Les programmeurs préférant développer des applications 16-bits pouvaient importer les programmes de VB4 vers VB5 <sup class="need_ref_tag" style="padding-left:2px;"><span title="Ce passage nécessite une référence ; voir l'aide.">[réf.&nbsp;nécessaire]</span></sup>, et inversement. Visual Basic 5.0 a aussi introduit la possibilité de créer des contrôles utilisateurs personnalisés ainsi que la possibilité de générer des exécutables Windows natifs, ce qui améliorait la vitesse d’exécution des programmes effectuant beaucoup de calculs.</li>
<li>Visual Basic 6.0 (mi-<a href="1998_en_informatique" title="1998 en informatique">1998</a>) a apporté de nombreuses améliorations dans différents domaines, notamment la possibilité de créer des applications Web-based. VB6 n'est plus supporté par Microsoft depuis <time class="nowrap date-lien" datetime="2008-03" data-sort-value="2008-03"><a href="Mars_2008" title="Mars 2008">mars</a> <a href="2008_en_informatique" title="2008 en informatique">2008</a></time>.</li>
<li>Microsoft a cessé le support grand public pour Visual Basic 6.0 le <time class="nowrap date-lien" datetime="2005-03-31" data-sort-value="2005-03-31"><a href="31_mars" title="31 mars">31</a> <a href="Mars_2005" title="Mars 2005">mars</a> <a href="2005_en_informatique" title="2005 en informatique">2005</a></time>. Le support étendu a pris fin en <time class="nowrap date-lien" datetime="2008-03" data-sort-value="2008-03"><a href="Mars_2008" title="Mars 2008">mars</a> <a href="2008_en_informatique" title="2008 en informatique">2008</a></time><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>. En réaction, la communauté des utilisateurs Visual Basic a fait part de ses préoccupations à ce sujet et a incité les utilisateurs à signer une pétition afin de permettre de maintenir le produit en vie. À ce jour, Microsoft a refusé de modifier sa position à ce sujet. Ironiquement, il fut révélé au même moment que le nouvel Anti-Spyware de Microsoft, Microsoft AntiSpyware (racheté à GIANT Software Company) était écrit en Visual Basic 6.0. <a href="Windows_Defender" class="mw-redirect" title="Windows Defender">Windows Defender</a> Beta 2 a été réécrit en <a href="https://en.wikipedia.org/wiki/C%2B%2B/CLI" class="extiw external" title="en:C++/CLI">C++/CLI</a>.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Langages_dérivés"><span id="Langages_d.C3.A9riv.C3.A9s"></span>Langages dérivés</h2></div>
<p>Microsoft a développé des langages dérivés, pour des usages de <a href="Langage_de_script" title="Langage de script">langages de Script</a>&nbsp;:
</p>
<ul><li><a href="Visual_Basic_for_Applications" title="Visual Basic for Applications">Visual Basic pour Applications</a> (VBA) est inclus dans de nombreuses applications Microsoft (<a href="Microsoft_Office" title="Microsoft Office">Microsoft Office</a>) ainsi que dans de nombreux produits tiers tels qu’<a href="AutoCAD" title="AutoCAD">AutoCAD</a>, <a href="WordPerfect_Office" title="WordPerfect Office">WordPerfect Office 2002</a>, etc. Il y a de petites incohérences dans la façon dont VBA est implémenté dans les différentes applications, mais VBA reste un langage très proche de VB6 et utilise le même moteur d’exécution.</li>
<li><a href="VBScript" title="VBScript">VBScript</a> est le langage par défaut pour <span class="lang-en" lang="en"><i><a href="Active_server_pages" class="mw-redirect" title="Active server pages">Active Server Pages</a></i></span> (ASP) et peut être utilisé pour faire du <span class="lang-en" lang="en">scripting Windows</span> ainsi que du <span class="lang-en" lang="en">scripting web</span> côté client. Bien qu’il ressemble syntaxiquement à VB, c’est un langage différent et séparé, qui utilise vbscript.dll pour son exécution au lieu du moteur d'exécution VB. Ces différences peuvent affecter les performances d’un site web ASP. ASP et VBScript ne doivent pas être confondus avec <a href="ASP.NET" title="ASP.NET">ASP .NET</a>, qui utilise <a href="Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic .NET</a> ou tout autre langage destiné au <span class="lang-en" lang="en"><i><a href="Common_Language_Runtime" title="Common Language Runtime">.NET Common Language Runtime</a></i></span> (CLR).</li>
<li><a href="Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic .NET</a> est le successeur désigné de Microsoft à Visual Basic 6.0, et fait partie de la plate-forme Microsoft .NET. Celui-ci se compile et s’exécute sur l'<a href="Architecture_.NET" class="mw-redirect" title="Architecture .NET">architecture .NET</a>(le <span class="lang-en" lang="en"><i><a href="Framework_.NET" class="mw-redirect" title="Framework .NET">framework .NET</a></i></span>). Visual Basic .NET n’est pas <a href="Compatibilit%C3%A9_ascendante_et_descendante" title="Compatibilité ascendante et descendante">rétrocompatible</a> avec VB6. Un outil de conversion existe, mais pour de nombreux projets, la conversion automatique est impossible.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Performances_et_autres_problèmes"><span id="Performances_et_autres_probl.C3.A8mes"></span>Performances et autres problèmes</h2></div>
<p>Les premières versions de Visual Basic (avant la version 5.0) généraient uniquement du <a href="Bytecode" title="Bytecode">P-Code</a> ou pseudo code. Visual Basic 5 et 6 sont capables de compiler en P-code ou en code natif, au choix du programmeur. Le P-code est interprété par le <span class="lang-en" lang="en"><i>runtime</i></span> du langage, aussi appelé <a href="Machine_virtuelle" title="Machine virtuelle">machine virtuelle</a>. L’avantage réside dans la portabilité et la petitesse du code. Cependant, ceci ralentit généralement l’exécution des programmes, car cela ajoute une couche supplémentaire d’interprétation. Il est possible de construire de petites portions de codes ou certains algorithmes qui s’exécutent plus rapidement en P-code qu’en <a href="Code_natif" title="Code natif">code natif</a>.
</p><p>Les applications Visual Basic requièrent la présence du <span class="lang-en" lang="en"><i>Microsoft Visual Basic Runtime</i></span> MSVBVMxx.DLL, où xx est le numéro de version, soit 50 ou 60. MSVBVM60.DLL est fourni en standard avec toutes les versions de Windows suivant <a href="Windows_98" title="Windows 98">Windows 98</a>, alors que MSVBVM50.DLL était présents avec toutes les éditions de Windows postérieures à <a href="Windows_95" title="Windows 95">Windows 95</a>. Ainsi, pour une machine sous Windows 95, il était obligatoire que les programmes Visual Basic soient distribués avec la <a href="Biblioth%C3%A8que_logicielle" title="Bibliothèque logicielle">Dll</a> appropriée.
</p><p>Visual Basic est critiqué pour sa gestion mémoire peu performante et pour la possibilité qu’il offre de pouvoir construire du code utilisant des constructions peu académiques, pouvant donner de mauvaises habitudes de programmation et permettant d’écrire du code peu performant. En Visual Basic, il peut parfois être difficile de dire si une variable est une référence à un objet ou bien l’objet lui-même.
</p><p>Dans le même ordre d’idée, il est parfois difficile de dire si une opération va copier la référence d’un objet ou bien copier l’entièreté de l’objet. Cette ambiguïté peut être la cause de comportements non prévus, ou résulter en un programme aux piètres performances.
</p>
<div class="mw-heading mw-heading2"><h2 id="Exemples_de_code">Exemples de code</h2></div>
<p>Voici quelques exemples de code Visual Basic&nbsp;:
</p><p>Fonction qui renvoie (calcule) l’aire d’un cercle&nbsp;:
</p>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Private</span><span class="w"> </span><span class="k">Function</span><span class="w"> </span><span class="nf">AireDuCercle</span><span class="p">(</span><span class="n">Rayon</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">)</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span>
<span class="w"> </span><span class="k">Const</span><span class="w"> </span><span class="n">PI</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">3.14159265358979</span>
<span class="w"> </span><span class="n">AireDuCercle</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">PI</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">Rayon</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span>
<span class="k">End</span><span class="w"> </span><span class="k">Function</span>
</pre></div>
<p>Programme affichant une fenêtre avec les mots «&nbsp;<a href="Hello_world" title="Hello world">Hello World</a>&nbsp;»
</p>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Sub</span><span class="w"> </span><span class="nf">Main</span><span class="p">()</span>
<span class="w"> </span><span class="n">MsgBox</span><span class="p">(</span><span class="s">"Hello World"</span><span class="p">)</span>
<span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
</pre></div>
<p>Démarrer une application tierce depuis Visual Basic&nbsp;:
</p>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Private</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">Run_Notepad</span><span class="p">()</span>
<span class="w"> </span><span class="n">Shell</span><span class="w"> </span><span class="s">"%SystemRoot%\notepad.exe"</span><span class="p">,</span><span class="w"> </span><span class="n">vbMinimizedNoFocus</span>
<span class="w"> </span><span class="c">'ouvre Notepad, car Notepad est dans le répertoire System</span>
<span class="w"> </span><span class="c">'%SystemRoot% est une variable d'environnement contenant le chemin du répertoire Windows System.</span>
<span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
</pre></div>
<p>Programmation objet&nbsp;:
</p>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Imports</span><span class="w"> </span><span class="nn">System.Net.Mail</span>

<span class="k">Public</span><span class="w"> </span><span class="k">Class</span><span class="w"> </span><span class="nc">Form1</span>

<span class="w"> </span><span class="k">Private</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">CheckBox1_CheckedChanged</span><span class="p">(</span><span class="n">sender</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Object</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">EventArgs</span><span class="p">)</span><span class="w"> </span><span class="k">Handles</span><span class="w"> </span><span class="n">CBaccept</span><span class="p">.</span><span class="n">CheckedChanged</span>
<span class="w"> </span><span class="n">Button1</span><span class="p">.</span><span class="n">Visible</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">True</span>
<span class="w"> </span><span class="k">If</span><span class="w"> </span><span class="n">CBaccept</span><span class="p">.</span><span class="n">Checked</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">False</span><span class="w"> </span><span class="k">Then</span>
<span class="w"> </span><span class="n">Button1</span><span class="p">.</span><span class="n">Visible</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">False</span>
<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">If</span>
<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Sub</span>

<span class="w"> </span><span class="k">Private</span><span class="w"> </span><span class="k">Sub</span><span class="w"> </span><span class="nf">Button1_Click</span><span class="p">(</span><span class="n">sender</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Object</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="n">EventArgs</span><span class="p">)</span><span class="w"> </span><span class="k">Handles</span><span class="w"> </span><span class="n">Button1</span><span class="p">.</span><span class="n">Click</span>
<span class="w"> </span><span class="k">If</span><span class="w"> </span><span class="n">TBnom</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="ow">Or</span><span class="w"> </span><span class="n">TBmail</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="ow">Or</span><span class="w"> </span><span class="n">TBpasse</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="ow">Or</span><span class="w"> </span><span class="n">TBcpasse</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="ow">Or</span><span class="w"> </span><span class="n">TBprenom</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="ow">Or</span><span class="w"> </span><span class="n">TBpseudo</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="ow">Or</span><span class="w"> </span><span class="n">TBcandidature</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="ow">Or</span><span class="w"> </span><span class="n">CBaccept</span><span class="p">.</span><span class="n">Checked</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">False</span><span class="w"> </span><span class="k">Then</span>
<span class="w"> </span><span class="n">MsgBox</span><span class="p">(</span><span class="s">"Vous devez tout remplir correctement"</span><span class="p">)</span>
<span class="w"> </span><span class="k">Exit</span><span class="w"> </span><span class="k">Sub</span>
<span class="w"> </span><span class="nf">End</span><span class="w"> </span><span class="k">If</span>

<span class="w"> </span><span class="k">If</span><span class="w"> </span><span class="n">TBpasse</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="o">&lt;&gt;</span><span class="w"> </span><span class="n">TBcpasse</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="k">Then</span>
<span class="w"> </span><span class="n">MsgBox</span><span class="p">(</span><span class="s">"le mot de passe ne correspond pas"</span><span class="p">)</span>
<span class="w"> </span><span class="k">Exit</span><span class="w"> </span><span class="k">Sub</span>
<span class="w"> </span><span class="nf">End</span><span class="w"> </span><span class="k">If</span>

<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">Nom</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TBnom</span><span class="p">.</span><span class="n">Text</span>
<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">Prenom</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TBprenom</span><span class="p">.</span><span class="n">Text</span>
<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">Mail</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TBmail</span><span class="p">.</span><span class="n">Text</span>
<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">Passe</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TBpasse</span>
<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">Candidature</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TBcandidature</span>
<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">Pseudo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TBpasse</span>
<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">Message</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"Test"</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">Pseudo</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">vbCrLf</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="s">"candidature "</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">Candidature</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">vbCrLf</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="s">"prenom"</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">Prenom</span>

<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">MyMailMessage</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="k">New</span><span class="w"> </span><span class="n">MailMessage</span><span class="p">()</span>
<span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">SMTPServer</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="k">New</span><span class="w"> </span><span class="n">SmtpClient</span><span class="p">(</span><span class="s">"exemple@gmail.com"</span><span class="p">)</span>

<span class="w"> </span><span class="n">MyMailMessage</span><span class="p">.</span><span class="n">From</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">New</span><span class="w"> </span><span class="n">MailAddress</span><span class="p">(</span><span class="s">"exemple@gmail.com"</span><span class="p">)</span>
<span class="w"> </span><span class="n">MyMailMessage</span><span class="p">.</span><span class="n">To</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="s">"exemple@gmail.com"</span><span class="p">)</span>
<span class="w"> </span><span class="n">MyMailMessage</span><span class="p">.</span><span class="n">Subject</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="s">"sujet du message"</span><span class="p">)</span>
<span class="w"> </span><span class="n">MyMailMessage</span><span class="p">.</span><span class="n">Body</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="s">"Message"</span><span class="p">)</span>

<span class="w"> </span><span class="n">SMTPServer</span><span class="p">.</span><span class="n">Port</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="s">"587"</span><span class="p">)</span><span class="w"> </span><span class="c">'Port</span>
<span class="w"> </span><span class="n">SMTPServer</span><span class="p">.</span><span class="n">Credentials</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">New</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Net</span><span class="p">.</span><span class="n">NetworkCredential</span><span class="p">(</span><span class="s">"Adresse_Expediteur"</span><span class="p">,</span><span class="w"> </span><span class="s">"Mot_de_passe_expediteur"</span><span class="p">)</span>
<span class="w"> </span><span class="n">SMTPServer</span><span class="p">.</span><span class="n">EnableSsl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">True</span>

<span class="w"> </span><span class="n">SMTPServer</span><span class="p">.</span><span class="n">Send</span><span class="p">(</span><span class="n">MyMailMessage</span><span class="p">)</span><span class="w"> </span><span class="c">'Envoi</span>

<span class="w"> </span><span class="k">End</span><span class="w"> </span><span class="k">Sub</span>
<span class="k">End</span><span class="w"> </span><span class="k">Class</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Développement_d’interfaces_utilisateurs_graphiques_en_Visual_Basic_6.0"><span id="D.C3.A9veloppement_d.E2.80.99interfaces_utilisateurs_graphiques_en_Visual_Basic_6.0"></span>Développement d’interfaces utilisateurs graphiques en Visual Basic 6.0</h2></div>
<p>Visual Basic permet de développer des interfaces utilisateurs graphiques très riches. De nombreux types de logiciels peuvent être créés rapidement, tels que (liste non exhaustive)&nbsp;: logiciel d’édition d’images, <a href="%C3%89diteur_de_texte" title="Éditeur de texte">éditeurs de texte</a> et applications de bases de données.
</p>
<div class="mw-heading mw-heading2"><h2 id="Annexes">Annexes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r194021218">
/* start https://fr.wikipedia.org/ */


.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}


/* end https://fr.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="Microsoft_Visual_Studio_Express" title="Microsoft Visual Studio Express">Microsoft Visual Studio Express</a></li>
<li><a href="Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic .NET</a></li>
<li><a href="Langage_de_programmation" title="Langage de programmation">Langages de programmation</a></li>
<li><a href="Chronologie_des_langages_de_programmation" title="Chronologie des langages de programmation">Chronologie des langages de programmation</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><a rel="nofollow" class="external text" href="http://vb.developpez.com/faq/">FAQ Visual Basic</a></li>
<li><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/fr-fr/vbasic/default.aspx">Site officiel</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Bibliographie">Bibliographie</h3></div>
<ul><li><span class="ouvrage" id="Balena2006"><span class="ouvrage" id="Francesco_Balena2006">Francesco <span class="nom_auteur">Balena</span>, <cite class="italique">Microsoft Visual Basic 2005</cite>, Paris, Microsoft Press, <abbr class="abbr" title="collection">coll.</abbr>&nbsp;«&nbsp;Manuel de référence&nbsp;», <time>2006</time>, 640&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">978-2-10-049941-0</span>, <a rel="nofollow" class="external text" href="http://www.dunod.com/informatique-multimedia/microsoft-press/developpement/visual-studio-2005/visual-basic-2005">présentation en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Microsoft+Visual+Basic+2005&amp;rft.place=Paris&amp;rft.pub=Microsoft+Press&amp;rft.aulast=Balena&amp;rft.aufirst=Francesco&amp;rft.date=2006&amp;rft.tpages=640&amp;rft.isbn=978-2-10-049941-0&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AVisual+Basic"></span></span></span></li>
<li><span class="ouvrage" id="Halvorson2010"><span class="ouvrage" id="Michaël_Halvorson2010">Michaël <span class="nom_auteur">Halvorson</span> (<abbr class="abbr" title="traduction">trad.</abbr>&nbsp;de l'anglais), <cite class="italique">Microsoft Visual Basic 2010</cite>, Paris, Microsoft Press, <abbr class="abbr" title="collection">coll.</abbr>&nbsp;«&nbsp;Étape par Étape&nbsp;», <time>2010</time>, 576&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">978-2-10-054744-9</span>, <a rel="nofollow" class="external text" href="http://www.dunod.com/informatique-multimedia/microsoft-press/developpement/visual-studio-2008/visual-basic-2010">présentation en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Microsoft+Visual+Basic+2010&amp;rft.place=Paris&amp;rft.pub=Microsoft+Press&amp;rft.aulast=Halvorson&amp;rft.aufirst=Micha%C3%ABl&amp;rft.date=2010&amp;rft.tpages=576&amp;rft.isbn=978-2-10-054744-9&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AVisual+Basic"></span></span></span></li>
<li><span class="ouvrage" id="RegnicoliPialorsiBrunetti2013"><span class="ouvrage" id="Luca_RegnicoliPaolo_PialorsiRoberto_Brunetti2013">Luca <span class="nom_auteur">Regnicoli</span>, Paolo <span class="nom_auteur">Pialorsi</span> et Roberto <span class="nom_auteur">Brunetti</span>, <cite class="italique">Build Windows 8 Apps with Microsoft Visual C# and Visual Basic</cite>, Sebastopol, Microsoft Press, <abbr class="abbr" title="collection">coll.</abbr>&nbsp;«&nbsp;Step by Step&nbsp;», <time>2013</time>, 368&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">978-0-7356-6695-5</span>, <a rel="nofollow" class="external text" href="http://shop.oreilly.com/product/0790145350992.do">présentation en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Build+Windows+8+Apps+with+Microsoft+Visual+C%23+and+Visual+Basic&amp;rft.place=Sebastopol&amp;rft.pub=Microsoft+Press&amp;rft.aulast=Regnicoli&amp;rft.aufirst=Luca&amp;rft.au=Pialorsi%2C+Paolo&amp;rft.au=Brunetti%2C+Roberto&amp;rft.date=2013&amp;rft.tpages=368&amp;rft.isbn=978-0-7356-6695-5&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AVisual+Basic"></span></span></span></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h3></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text">VB est remplacé par <a href="Visual_Basic_.NET" title="Visual Basic .NET">Visual Basic .NET</a>, cependant la conversion d'applications depuis VB vers VB .NET peut ne pas être triviale. <a rel="nofollow" class="external autonumber" href="http://msdn.microsoft.com/vbrun/staythepath/additionalresources/upgradingvb6/chapter2.pdf">[1]</a><abbr class="abbr indicateur-format format-pdf" title="Document au format Portable Document Format (PDF)">[PDF]</abbr>.)</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text">Par exemple&nbsp;: S="ABC"&nbsp;: S = S &amp; "DEF"&nbsp;: S = S &amp; "GHI" est une pratique courante en VB, mais peut causer de graves ennuis si utilisée sur une page ASP, car les constantes statiques sont traitées différemment par les deux langages.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <span class="noarchive">«&nbsp;<a rel="nofollow" class="external text" href="http://www.computerworld.com/developmenttopics/development/story/0,10801,100542,00.html"><cite style="font-style:normal; color:var(--color-link-red, #d73333);" lang="en">Computerworld Development Survey gives nod to C#</cite></a>&nbsp;»<sup class="">(<a rel="nofollow" class="external text" href="https://web.archive.org/web/*/http://www.computerworld.com/developmenttopics/development/story/0,10801,100542,00.html">Archive.org</a> • <a rel="nofollow" class="external text" href="https://archive.wikiwix.com/cache/?url=http://www.computerworld.com/developmenttopics/development/story/0,10801,100542,00.html">Wikiwix</a> • <a rel="nofollow" class="external text" href="https://archive.is/http://www.computerworld.com/developmenttopics/development/story/0,10801,100542,00.html">Archive.is</a> • <a rel="nofollow" class="external text" href="https://webcache.googleusercontent.com/search?hl=fr&amp;q=cache:http://www.computerworld.com/developmenttopics/development/story/0,10801,100542,00.html">Google</a> • Que faire&nbsp;?)</sup></span></span>]</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a> </span><span class="reference-text">Dans la plupart des langages, <tt>True</tt> est représenté par une valeur numérique différente de zéro, souvent 1 ou -1</span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://msdn2.microsoft.com/en-us/vbrun/ms788707.aspx"><span class="lang-en" lang="en"><i>Product Family Life Cycle Guidelines for Visual Basic 6.0</i></span></a></span>
</li>
</ol></div>
</div><p><br></p><div class="navbox-container" style="clear:both;">

</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de Microsoft</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des logiciels</span> </span></li> </ul>
</div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-05-11" href="https://fr.wikipedia.org/wiki/?title=Visual_Basic&amp;oldid=225567910">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>